![[update] AWS Elemental LinkのひとつのデバイスをMediaLiveの複数のChannel入力として使用できるようになりました](https://devio2023-media.developers.io/wp-content/uploads/2020/06/aws-elemental-link-202006-1200x630-3.jpg)
[update] AWS Elemental LinkのひとつのデバイスをMediaLiveの複数のChannel入力として使用できるようになりました
はじめに
清水です。本エントリでお届けするアップデートはこちら、AWS Elemental LinkでひとつのデバイスがMediaLiveの複数のChannelの入力として使用できるようになりました。2020/11/11にポストされたアップデート情報のうちの1つを本エントリにて取り上げます。)
AWS Elemental MediaLive用のセットアップ済みライブエンコーダデバイスとして動作するAWS Elemental Link、これまではひとつのデバイスを接続できるMediaLiveのInputは1つのみという制限がありました。 *1今回のアップデートでこの制限がなくなり、ひとつのLinkデバイスを複数のMediaLiveのInputに接続できるようになりました。複数のInputに接続することにより、Linkデバイスが複数のChannelの入力として同時に使用できることとなります。上記のアップデート情報で例示されているように、1つのChannelではLinkデバイスから打ち上げられた映像を常時アーカイブしておき、必要に応じて2つ目のChannelで視聴者向けにライブストリーミング配信する、といったことが可能になります。Linkデバイスの活用の幅が広がりますね。
ひとつのLinkデバイスを複数のChannelのInputとして使用してみる
それでは実際に、ひとつのLinkデバイスを複数のInputに接続し、Linkに打ち上げた映像を異なるMediaLive Channelで使用してみたいと思います。アップデート情報に倣い、MediaLiveの1つのChannelではアーカイブ出力としてS3に保存、その最中にもう一つのMediaLiveのChannelを作成、このChannelからLinkデバイスにより打ち上げられた映像をライブストリーミング配信、という流れで確認をしてみます。なお、リージョンはオレゴン(us-west-2)を使用し、Single Pipelineで確認を行いました。LinkデバイスへはHDMI接続でBig Bug Bunnyの映像を常時流しておきます。
1つ目のChannel(アーカイブ出力用)の作成と使用
まずは1つ目、アーカイブ出力用のMediaLiveのChannelを作成していきます。[Create Input]からInputの作成画面に進み、Input typeをElemental Link
、Input classはSINGLE_INPUT
、Input device Aに使用するLinkデバイスを指定して[Create]ボタンでInputを作成します。
続いてChannelの作成に[Create Channel]ボタンから進みます。Channel classではSINGLE_PIPELINE
を選択します。
Input attachmentsで先ほど作成した、Linkデバイスを関連付けたInputを選択します。
Output groupsではArchiveを指定、S3に出力されるよう設定し[Create channel]でChannelを作成します。 *2
Cahnnelが作成できたら、そのままChannelを開始しておきます。これでLinkデバイスから打ち上げられた映像はS3にアーカイブされる状況となりました。
2つ目のChannel(ライブストリーミング用)の作成と使用
続いて2つ目のChannelを作成します。こちらも[Create Input]からInputの作成画面に進み、Input typeをElemental Link
、Input classはSINGLE_INPUT
とします。そしてInput device Aに使用するLinkデバイスを選択しましょう。今回使用するのは1つ目のChannelにも使用したIDの末尾がc0z8
のものです。ドロップダウンリストにAttached
の表示がありますが、かまわずこれを選択し、[Create]ボタンでInputを作成します。
ひとつのLinkデバイスに接続されている、2つのInputリソースが確認できます!
続いてChannelの作成です。こちらも[Create Channel]ボタンから進みます。ライブストリーミングようですので、Channel templateのLive event(MediaPackage)をベースに設定していきます。Channel classはSINGLE_PIPELINE
を選択します。
Input attachmentsで先ほど作成した、ライブストリーミング用のInputを選択します。ここでもLinkデバイスのIDが確認できます。この段階で同じIDのLinkデバイスで、アーカイブ用Channelが稼働している状態ですね。
Output groupsではMediaPackageのChannel IDを指定し、[Create channel]でChannelを作成します。(MediaPackageのリソースについてはすでに作成済みのものを使用したため、設定については割愛します。)
Channelが作成できました。この間、ずっと1つ目のChannelはRunningn状態で、Linkから打ち上げ荒れた映像はアーカイブ保存され続けています。
では、2つ目のライブストリーミング用ChannelもStartさせましょう。Running状態になったら、ライブストリーミングをVideo.js(VHS)を使って視聴してみます。(ドメインがCloudFrontとなっていますが、オリジンをMediaPackageとするものです。)問題なく視聴できていますね。そしてこの間も、アーカイブは収録されたままです。
ライブストリーミングの確認ができたら、今度はライブストリーミング用Channelは停止してしまいましょう。もちろんこの間もアーカイブは収録されています。
1つ目のアーカイブ用のChannelはそれ自体を停止するまで(映像の打ち上げもととなるLinkデバイスを他のInput/Channelと接続する、操作するなどしている間でも)、アーカイブ収録を続けていました。
まとめ
AWS Elemental Linkのひとつのデバイスを複数のMediaLive Inputに接続できるようになり、同時に複数Channelで利用できるようになったアップデートについてまとめてみました。今回やってみたアーカイブとライブストリーミングを同時に行う構成ですが、1つのChannelで複数Outputを使えば、これまでのひとつのLinkデバイスの接続先がひとつのInput/Channelのみという制限があっても実現はできました。今回のアップデート、複数のChannelでも同じLinkデバイスと接続できるということで、すでに稼働しているChannelを停止などせずに追加で別Channelが同一ソースに対して作成、編集できる点がポイントかなと思います。
脚注
- 実際に複数のInputに接続したい、というケースに出会さなかったのですが、MediaLinkのユーザーガイドに以下の記載が(2020/11/30現時点では。おそらくドキュメントへの反映がされていない。)あるので、Linkデバイスの接続できるInputは1つのみという制限があったと考えています。
各 MediaLive デバイスは 1 つの入力にのみ接続でき、その入力は Elemental Link 入力であることが必要です。
AWS Elemental Link デバイスの使用 - AWS Elemental (AWS Elemental)MediaLive
Each MediaLive device can be attached to only one input, and that input must be an Elemental Link input.
Working with AWS Elemental Link devices - AWS Elemental MediaLive ↩
- 本エントリ最後に記載する、アーカイブしたファイルのスクリーンショットをみるとわかるのですが、この設定だとファイル名の先頭が「_」になってしまうので注意しましょう。後になって気がつきました……。 ↩